'use client' /** * AI Observability Trace Detail Page Preset * * Shows detailed view of a specific trace with its spans. * Configurable basePath allows use at any URL (e.g., /superadmin/ai-observability/{traceId}) */ import { useRouter } from 'next/navigation' import { useTraceDetail } from '@/plugins/langchain/hooks/observability/useTraceDetail' import { TraceDetail } from '@/plugins/langchain/components/observability/TraceDetail' interface TraceDetailPagePresetProps { traceId: string enabled?: boolean /** Base path for navigation (e.g., '/superadmin/ai-observability') */ basePath?: string } export function TraceDetailPagePreset({ traceId, enabled = true, basePath = '/superadmin/ai-observability' }: TraceDetailPagePresetProps) { const router = useRouter() const { data, isLoading, isError } = useTraceDetail(traceId) const handleBack = () => { router.push(basePath) } const handleSelectChildTrace = (childTraceId: string) => { router.push(`${basePath}/${childTraceId}`) } const handleSelectParentTrace = (parentTraceId: string) => { router.push(`${basePath}/${parentTraceId}`) } if (!enabled) { return (

Observability is disabled.

) } if (isLoading) { return (

Loading trace...

) } if (isError || !data) { return (

Failed to load trace

) } return (
) } export default TraceDetailPagePreset